home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Tools 4
/
Amiga Tools 4.iso
/
tools
/
mail-tools
/
thor
/
thor_2.22
/
updatethor
< prev
next >
Wrap
Text File
|
1996-02-26
|
23KB
|
988 lines
;*************************************************************************
; Title:
; UpdateThor
;*************************************************************************
; Description:
; Commodore Installer Script for the Thor 2.1 software
;*************************************************************************
; Author:
; Øyvind Ellefsen - versions for THOR upto 1.22
; Petter Nilsen - versions for 1.25 ->
;*************************************************************************
; Still to do:
; - THOR.macros might not be correct. Notify user?
; - Handle previous installations with one of the env-vars/assigns
; missing.
; - Show .readme file
; - Not delete catalogs/, only the needed dirs
;
;*************************************************************************
;
;******************************************************
;***** SET UP OUR VARIABLES AND OTHER SUCH STUFF ******
;******************************************************
; some useful variables
(set true 1)
(set false 0)
(set yes true)
(set no false)
(set is_a_file 1)
(set is_a_dir 2)
(set quote "\"")
(set newline "\n")
(set nothing "")
(set V3_Update no)
; set up our delete options
(delopts "AskUser" "OkNoDelete" "Force")
; some useful procedures
; change userlevel to expert
(procedure expert_level
(
(user 2)
)
)
; reset userlevel back to default
(procedure default_level
(
(user default-level)
)
)
; store off userlevel
(procedure save_default_level
(
(set default-level @user-level)
)
)
; some overused strings
(set omp (cat "One moment please..." newline))
; introduce ourselfs to the viewers
(welcome "Welcome to the Thor installer. This installer uses "
"the Commodore Amiga Installer. All of our future Thor releases "
"will be using this installer and we would like to get any feedback "
"that might help to improve the installation procedure." newline
)
; first reset the user level so that the novice can see whats going on
(save_default_level)
(expert_level)
;Make assign to install from
(makeassign "Thor_Install" "" (safe))
;******************
;** Check Memory **
;******************
(run "Avail flush")
(set Running (run "Thor_Install:CheckForLib"))
(while (= Running 20)
((Message newline "Thor seem to be running, you MUST close it NOW."
newline "If you don't, the installation will fail!")
(run "Avail flush")
(set Running (run "Thor_Install:CheckForLib")))
)
;************************
;** Start Installation **
;************************
(if (exists "ENV:THOR/THORPath" (noreq))
(
(if (set Thor_Dir (getenv "THOR/THORPath"))
(
(set Thor_Dir (substr Thor_Dir 0 (- (strlen Thor_Dir) 1)))
(set Thor_Dir (expandpath Thor_Dir))
(set V3_Update yes)
(makeassign "Thor" Thor_Dir (safe))
)
; Else
(
(if (exists "Thor:libs/bbsread.library" (noreq))
; Then
(
(set Thor_Dir (expandpath "Thor:"))
)
; Else
(
(set end_text "Please use the InstallThor script for a first-time installation.")
(abort end_text))
)
)
)
)
; Else
(
(if (exists "Thor:libs/bbsread.library" (noreq))
; Then
(
(set Thor_Dir (expandpath "Thor:"))
)
; Else
(
(set end_text "Please use the InstallThor script for a first-time installation.")
(abort end_text))
)
)
)
(if (exists "ENV:THOR/THORPath" (noreq))
(
(if (set BBSData_Dir (getenv "THOR/BBSDataPath"))
(
(set BBSData_Dir (substr BBSData_Dir 0 (- (strlen BBSData_Dir) 1)))
(set BBSData_Dir (expandpath BBSData_Dir))
(set V3_Update yes)
(makeassign "BBSData" BBSData_Dir (safe))
)
; Else
(
(if (exists "BBSData:global.config" (noreq))
; Then
(
(set BBSData_Dir (expandpath "BBSData:"))
)
; Else
(
(set end_text "Please use the InstallThor script for a first-time installation.")
(abort end_text))
)
)
)
)
; Else
(
(if (exists "BBSData:global.config" (noreq))
; Then
(
(set BBSData_Dir (expandpath "BBSData:"))
)
; Else
(
(set end_text "Please use the InstallThor script for a first-time installation.")
(abort end_text))
)
)
)
;**********************************************
;** Move ARexx scripts to another directory..**
;**********************************************
(if (askbool
(prompt
"The THOR ARexx script distribution has changed. "
"The old directory with ARexx scripts can be moved "
"to a Rexx_Old directory. \n\n"
"Press 'Yes' to continue with backup of old ARexx scripts.")
(help
"The installer has determined that you may already have a "
"copy of Thor installed on your system. "
"ARexx files from a previous installation can be moved to "
"a safe directory."
)
(default 1)
)
; Then
(
(makedir "THOR:Rexx_Old")
(copyfiles
(source "Thor:rexx")
(dest "THOR:rexx_old")
(all)
)
(working omp "Deleting old ARexx files...")
(run "Delete THOR:rexx/~(postinglists|#?.cfg|#?.adr) all")
)
)
;**********************************************
;** Hostile deletion of old files here.. ******
;**********************************************
(expert_level)
(if (= V3_Update no)
(
(if (askbool
(prompt "Several old files left over from the the THOR 1.x" newline
"releases are now obsolete and should be deleted." newline
"This applies to the following directories: " newline
"THOR:bin, THOR:s, THOR:libs and THOR:Scripts. " newline
"If you have made any ARexx-scripts for Thor 1.xx,\n"
"they might not work anymore. Check out the new\n"
"ARexx-documentation and change your scripts accordingly.\n\n"
"You might want to make a backup of personal files " newline
"before proceeding." newline
"Press 'Yes' to continue with deletion of obsolete files")
(help
"The installer has determined that you may already have a "
"copy of Thor installed on your system. "
"Several files have changed and should be deleted since they "
"will not function correctly with this release of THOR. "
)
(default 1)
)
; Then
(
(run "Delete THOR:ThorStat#?")
(run "Delete THOR:THOR.history")
(run "Delete THOR:libs/#?")
(run "Delete THOR:bin/#?")
(run "Delete THOR:s/#?")
(run "Delete THOR:Scripts/#?")
(run "Delete THOR:#?guide#?")
(run "Delete THOR:THOR")
(run "Rename THOR:THOR.info THOR:THOR.old.info")
(run "Delete THOR:THOR.info")
(run "Delete libs:bbsread.library")
)
)
)
)
; Else
;(
; (if (askbool
; (prompt
; "Due to a problem with MultiUser filesystem, "
; "old files must be deleted before installing "
; "the new files. This is not needed if you do not "
; "run this filesystem on the partition THOR is "
; "installed on. Please take a backup of any personal ARexx "
; "scripts you might have made before selecting 'Yes' here.\n\n"
; "Press 'Yes' to continue with deletion of old files.")
; (help
; "The installer has determined that you may already have a "
; "copy of Thor installed on your system. "
; "Old files from a previous installation must be deleted "
; "if you are running the MultiUser filesystem on the "
; "partition THOR is installed on."
; )
; (default 1)
; )
; ; Then
; (
; (run "Delete THOR:ThorStat#?")
; (run "Delete THOR:THOR.history")
; (run "Delete THOR:libs/#?")
; (run "Delete THOR:l/#?")
; (run "Delete THOR:docs/#?")
; (run "Delete THOR:bin/#?")
; (run "Delete THOR:s/#?")
; (run "Delete THOR:unix/#?")
; (run "Delete THOR:rexx/~(postinglists) all")
; (run "Delete THOR:Scripts/#?")
; (run "Delete THOR:#?guide#?")
; (run "Delete THOR:THOR")
; (run "Rename THOR:THOR.info THOR:THOR.old.info")
; (run "Delete THOR:ConfigTHOR")
; (run "Rename THOR:ConfigTHOR.info THOR:ConfigTHOR.old.info")
; (run "Delete THOR:ConnectTHOR")
; (run "Rename THOR:ConnectTHOR.info THOR:ConnectTHOR.old.info")
; )
; )
;)
(run "Rename THOR:THOR.info THOR:THOR.old.info")
(run "Rename THOR:ConfigTHOR.info THOR:ConfigTHOR.old.info")
(run "Rename THOR:ConnectTHOR.info THOR:ConnectTHOR.old.info")
(run "Delete libs:bbsread.library")
(run "Delete libs:bbsreadcnv2.library")
(run "Delete libs:utgui.library")
(run "Delete l:bbsread-handler")
(run "Delete l:bbsreadrexx-handler")
(run "Delete THOR:bin/initsoup")
(run "Delete THOR:bin/configuucp")
;******************
;** Locale stuff **
;******************
(default_level)
(set catalog
(askoptions
(prompt "What languages would you like to install ?\n"
"English is the built-in language.")
(help
"This will install locale files for other languages than English. "
"You can set the prefered language on Workbench and in Thor by"
"using the prefs:locale tool." newline @askchoice-help
)
(choices "Norsk" "Dansk" "Svenska" "Deutsch")
(default 0)
)
)
; Delete previous installed catalog files.
(if (= V3_Update yes)
(
(run "delete thor:catalogs all")
)
)
(makedir "thor:catalogs")
(if (bitand 1 catalog)
(copyfiles
(source "Thor_Install:catalogs/norsk")
(dest "thor:catalogs/norsk")
(all)
)
)
(if (bitand 2 catalog)
(copyfiles
(source "Thor_Install:catalogs/dansk")
(dest "thor:catalogs/dansk")
(all)
)
)
(if (bitand 4 catalog)
(copyfiles
(source "Thor_Install:catalogs/svenska")
(dest "thor:catalogs/svenska")
(all)
)
)
(if (bitand 8 catalog)
(copyfiles
(source "Thor_Install:catalogs/deutsch")
(dest "thor:catalogs/deutsch")
(all)
)
)
;***********************************
;***** GET FIRST DISK IN HERE ******
;***********************************
; first copy over the stuff
(working omp "Decompressing and copying Thor files.")
(run "Thor_Install:lha -a x Thor_Install:thor.lha THOR:" )
;*********************
;** reqtools.libary **
;*********************
(copylib
(prompt "Copying ReqTools library")
(help "This will copy the ReqTools library." newline @copylib-help)
(source "Thor_Install:reqtools.library")
(dest "libs:")
)
;************************
;** Copy the keyfile **
;************************
(if (exists "Thor_Install:THOR.key" (noreq))
; Then
(copyfiles
(source "Thor_Install:THOR.key")
(dest "THOR:")
)
)
;**********************************************
;* Convert the database to the new 2.0 format *
;**********************************************
(run "thor:bin/InitCharsets")
(expert_level)
(if (= V3_Update no)
(
(message newline "The installer will now convert and upgrade the "
newline "message database to the new 2.0 format."
newline "This might take some time, so please be patient.")
(run "Avail flush")
(set Running (run "Thor:bin/basemanager convert >con:0/0/640/200/Converting/AUTO/CLOSE/WAIT"))
(if (<> 0 Running)
(
((set end_text "Conversion of your old database failed." newline "Please take notice of the error message shown.")
(abort end_text)))
)
)
(set failed (run "thor:bin/initarc"))
(if (<> 0 failed)
(
((set end_text "Installation failed.\nIf you received any error message,\nplease write this down and send us\na mail about the problem.")
(abort end_text))
)
)
)
(if (exists "Thor_Install:bin/parseqwk" (noreq))
; Then
(
(set bbspack 1)
)
; Else
(
(if (askbool
(prompt newline
"Would you like to install the modules for "
"QWK, Fido, Hippo, Bluewave, ABBS/MBBS and Omen "
"to be used with Bulletin Board Systems?\n\n "
"(you will be able to select which modules to "
"install later in this installtions procedure).")
(help newline
"This section of the installation is dedicated "
"to installation of some common formats "
"required if you want to use THOR with BBSes.\n\n"
"Select YES if you want to continue with this "
"installation, otherwise NO")
(default 1)
)
; Then
(
(set bbsfile
(askfile
(prompt
"Please select the BBS archive for THOR 2.2. "
"(Usually named 'thor22_bbs.lha').\n\n"
"It will be unarchived automatically.")
(help @askfile-help)
(default "sys:")
)
)
; verify that the file exists
(if (exists bbsfile)
(
(set runfile (cat runfile "Thor_Install:lha -a x " quote bbsfile quote " Thor_Install:"))
(set failed (run runfile))
(if (<> 0 failed)
(
((set failed_text "Unarchiving of the BBS archive failed.")
(message end_text)))
)
; Else
(
(set bbspack 1)
)
)
)
)
)
)
)
(if (exists "Thor_Install:bin/gettcp" (noreq))
; Then
(
(set inetpack 1)
)
; Else
(
(if (askbool
(prompt newline
"Would you like to install the modules for "
"UUCP, SOUP, NNTP, SMTP and POP3 "
"to be used with Internet?\n\n"
"(you will be able to select which modules to "
"install later in this installtions procedure).")
(help newline
"This section of the installation is dedicated "
"to installation of some common formats "
"required if you want to use THOR with Internet.\n\n"
"Select YES if you want to continue with this "
"installation, otherwise NO")
(default 1)
)
; Then
(
(set inetfile
(askfile
(prompt
"Please select the Internet archive for THOR 2.2\n"
"(Usually named 'thor22_inet.lha').\n\n"
"It will be unarchived automatically."
(help @askfile-help)
(default "sys:")
)
)
)
; verify that the file exists
(if (exists inetfile)
(
(set runfile2 (cat runfile2 "Thor_Install:lha -a x " quote inetfile quote " Thor_Install:"))
(set failed (run runfile2))
(if (<> 0 failed)
(
((set failed_text "Unarchiving of the Internet archive failed.")
(message end_text)))
)
; Else
(
(set inetpack 1)
)
)
)
)
)
)
)
(if (= bbspack 1)
(
(set bbs_type
(askoptions
(prompt
"Please select which BBS modules "
"you want to install.")
(help
"What system type for BBS usage that should be "
"installed can be selected here."
)
(choices
"QWK - Normal QWK"
"Fido - Normal Fidonet"
"BlueWave - Normal BlueWave"
"ABBS - Normal ABBS"
"ABBS_QWK - ABBS with QWK support"
"MBBS - Normal MBBS"
"Hippo/BBBS - Normal Hippo V2 and Hippo on BBBS"
"Omen - Normal Omen"
)
(default 512)
)
)
(copyfiles
(source "Thor_Install:scripts")
(dest "THOR:scripts")
(pattern "#?BBS#?")
)
(if (bitand 1 bbs_type)
(
(copyfiles
(source "Thor_Install:bin")
(dest "THOR:bin")
(pattern "#?QWK")
)
(copyfiles
(source "Thor_Install:s/cfgqwk")
(dest "THOR:s")
)
(execute "thor:s/cfgqwk")
)
)
(if (bitand 2 bbs_type)
(
(copyfiles
(source "Thor_Install:bin")
(dest "THOR:bin")
(pattern "#?FIDO")
)
(copyfiles
(source "Thor_Install:s/cfgfido")
(dest "THOR:s")
)
(execute "thor:s/cfgfido")
)
)
(if (bitand 4 bbs_type)
(
(copyfiles
(source "Thor_Install:bin")
(dest "THOR:bin")
(pattern "#?BLUE")
)
(copyfiles
(source "Thor_Install:s/cfgblue")
(dest "THOR:s")
)
(execute "thor:s/cfgblue")
)
)
(if (bitand 8 bbs_type)
(
(copyfiles
(source "Thor_Install:bin/packambbs")
(dest "THOR:bin")
)
(copyfiles
(source "Thor_Install:bin/parsemsg")
(dest "THOR:bin")
)
(copyfiles
(source "Thor_Install:s/cfgabbs")
(dest "THOR:s")
)
(execute "thor:s/cfgabbs")
)
)
(if (bitand 16 bbs_type)
(
(copyfiles
(source "Thor_Install:bin")
(dest "THOR:bin")
(pattern "#?QWK")
)
(copyfiles
(source "Thor_Install:s/cfgabbs_qwk")
(dest "THOR:s")
)
(execute "thor:s/cfgabbs_qwk")
)
)
(if (bitand 32 bbs_type)
(
(copyfiles
(source "Thor_Install:bin/packambbs")
(dest "THOR:bin")
)
(copyfiles
(source "Thor_Install:bin/parsemsg")
(dest "THOR:bin")
)
(copyfiles
(source "Thor_Install:s/cfgmbbs")
(dest "THOR:s")
)
(execute "thor:s/cfgmbbs")
)
)
(if (bitand 64 bbs_type)
(
(copyfiles
(source "Thor_Install:bin")
(dest "THOR:bin")
(pattern "#?hippo")
)
(copyfiles
(source "Thor_Install:s/cfghippo")
(dest "THOR:s")
)
(copyfiles
(source "Thor_Install:s/cfgbbbs")
(dest "THOR:s")
)
(execute "thor:s/cfghippo")
(execute "thor:s/cfgbbbs")
)
)
(if (bitand 128 bbs_type)
(
(copyfiles
(source "Thor_Install:bin")
(dest "THOR:bin")
(pattern "#?omen")
)
(copyfiles
(source "Thor_Install:s/cfgomen")
(dest "THOR:s")
)
(execute "thor:s/cfgomen")
)
)
)
)
(if (= inetpack 1)
(
(set bbs_type
(askoptions
(prompt
"Please select which Internet modules "
"you want to install.")
(help
"What system type for Internet usage that should be "
"installed can be selected here."
)
(choices
"TCP/TCP_ONLINE - POP3, SMTP and NNTP"
"SOUP/UQWK_SOUP - Normal SOUP and SOUP w/uqwk"
"UUCP - Normal UUCP"
)
(default 7)
)
)
(copyfiles
(source "Thor_Install:libs/utnet.library")
(dest "THOR:libs")
)
(copyfiles
(source "Thor_Install:bin/InitRFC")
(dest "THOR:bin")
)
(copyfiles
(source "Thor_Install:scripts")
(dest "THOR:scripts")
(pattern "#?UQWK#?")
)
(if (bitand 1 bbs_type)
(
(copyfiles
(source "Thor_Install:bin")
(dest "THOR:bin")
(pattern "#?TCP")
)
(copyfiles
(source "Thor_Install:")
(dest "THOR:")
(pattern "ConnectTHOR#?")
)
(copyfiles
(source "Thor_Install:s/cfgtcp")
(dest "THOR:s")
)
(copyfiles
(source "Thor_Install:s/cfgtcp_online")
(dest "THOR:s")
)
(execute "thor:s/cfgtcp")
(execute "thor:s/cfgtcp_online")
)
)
(if (bitand 2 bbs_type)
(
(copyfiles
(source "Thor_Install:bin")
(dest "THOR:bin")
(pattern "#?SOUP")
)
(copyfiles
(source "Thor_Install:s")
(dest "THOR:s")
(pattern "#?soup")
)
(makedir "THOR:unix")
(copyfiles
(source "Thor_Install:unix")
(dest "THOR:unix")
(all)
)
(execute "thor:s/cfguqwk_soup")
(execute "thor:s/cfgsoup")
)
)
(if (bitand 4 bbs_type)
(
(copyfiles
(source "Thor_Install:bin")
(dest "THOR:bin")
(pattern "#?UUCP")
)
(copyfiles
(source "Thor_Install:s/cfguucp")
(dest "THOR:s")
)
(execute "thor:s/cfguucp")
)
)
)
)
;*********************************************
;** Copy configfiles from BBSDATA: to THOR: **
;*********************************************
(if (= V3_Update no)
(
(run "copy bbsdata:visual.config thor:visual.config")
(run "copy bbsdata:global.config thor:global.config")
(run "copy bbsdata:fse.config thor:fse.config")
)
)
;***********
;** Fonts **
;***********
(if (= V3_Update no)
(
(copyfiles
(prompt "Choose the fonts to install with Thor" newline "These are not required for Thor to run" )
(help "This will copy the default font files for Thor." newline @copyfiles-help)
(source "Thor_Install:Fonts")
(dest "Fonts:")
(fonts)
(choices "Grn" "Thin609" "Thin611" "Thin711")
(confirm)
)
)
)
;*****************************
;****** Install icons ********
;*****************************
(set icon
(askchoice
(prompt
"Please select what icon-set to install with THOR.\n")
(help
"If you use MagicWB on your Workbench, "
"you might want to install the special MagicWB icons.\n\n"
"Likewise, if you use NewIcons on your Workbench, "
"you might want to install the special NewIcons icons.")
(choices "Normal icons" "MagicWB icons" "NewIcons icons")
(default 0)
)
)
(if (= icon 1)
(
(copyfiles
(prompt "Copying MagicWB icon files")
(source "Thor_Install:MWBIcons")
(dest "Thor:")
(pattern "~(THOR.guide.info)")
(nogauge)
)
(copyfiles
(prompt "Copying MagicWB icon files")
(source "Thor_Install:MWBIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "THOR.guide.info")
(nogauge)
)
(copyfiles
(prompt "Copying MagicWB icon files")
(source "Thor_Install:MWBIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "ConfigTHOR.guide.info")
(nogauge)
)
(copyfiles
(prompt "Copying MagicWB icon files")
(source "Thor_Install:MWBIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "ARexx.guide.info")
(nogauge)
)
(copyfiles
(prompt "Copying MagicWB icon files")
(source "Thor_Install:MWBIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "BBSReadRexx.guide.info")
(nogauge)
)
(copyfiles
(prompt "Copying MagicWB icon files")
(source "Thor_Install:MWBIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "THOR_Rexx.guide.info")
(nogauge)
)
(copyfiles
(prompt "Copying MagicWB icon files")
(source "Thor_Install:MWBIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "Installation.guide.info")
(nogauge)
)
)
)
(if (= icon 2)
(
(copyfiles
(prompt "Copying NewIcons icon files")
(source "Thor_Install:NewIcons")
(dest "Thor:")
(pattern "~(THOR.guide.info)")
(nogauge)
)
(copyfiles
(prompt "Copying NewIcons icon files")
(source "Thor_Install:NewIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "THOR.guide.info")
(nogauge)
)
(copyfiles
(prompt "Copying NewIcons icon files")
(source "Thor_Install:NewIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "ConfigTHOR.guide.info")
(nogauge)
)
(copyfiles
(prompt "Copying NewIcons icon files")
(source "Thor_Install:NewIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "ARexx.guide.info")
(nogauge)
)
(copyfiles
(prompt "Copying NewIcons icon files")
(source "Thor_Install:NewIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "BBSReadRexx.guide.info")
(nogauge)
)
(copyfiles
(prompt "Copying NewIcons icon files")
(source "Thor_Install:NewIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "THOR_Rexx.guide.info")
(nogauge)
)
(copyfiles
(prompt "Copying NewIcons icon files")
(source "Thor_Install:NewIcons/THOR.guide.info")
(dest "Thor:Docs")
(newname "Installation.guide.info")
(nogauge)
)
)
)
(if (exists "env:sys/def_drawer.info" (noreq))
(copyfiles
(prompt "Copying default drawer icon")
(help "This will copy the default drawer icon." newline @copyfiles-help)
(source "env:sys/def_drawer.info")
(dest "Thor:")
(newname "Docs.info")
(infos)
)
)
;*****************************
;***** WE ARE ALMOST DONE ****
;*****************************
; make sure that default-dir is pointing to the right place
(set @default-dest Thor_Dir)
; final message for our viewers
(set end_text (cat "Hope you like THOR! Don't hesitate to "
"send us comments, bugreports and suggestions."))
(makeassign "Thor_Install")
(if (= V3_Update yes)
(
(makeassign "BBSData")
)
)
; now for the exit
(exit end_text)